/*
 * CodeProcessAsociateModel.java	 
 *
 * Copyright 2012 Universidad Francisco de Paula Santander (UFPS).
 * Todos los Derechos Reservados.
 * Creado el 07/10/12, 11:23:38 AM
 */
package com.ufps.cuatro.util.generadores.codeobject;

import java.util.ArrayList;

/**
 * <i><b>CodeProcessAsociateModel:</b></i><p>Define los Métodos que se requieren
 * para la implementación de los Modelos Asociados en la Generación del Código Fuente.</p> 
 * 
 * @author Carlos A. Torres C. - Dolly E. Guerrero. <https://code.google.com/p/tesis4dor/>
 * @version 1.0 07/10/12
 */
public interface CodeProcessAsociateModel {    
    /**
     * Devuelve el Código Fuente de la Definión de un Modelo Asociado. 
     * @param objSourceLinesCode Colección que almacenará el Código Fuente Generado.
     * @param canonicalDefinition Determina el Tipo de Generación del Código Fuente en la Definiciones de Tipos de Datos. 
     */
    public void generateSourceCodeSyntaxCollectionAsociateModelDefinition(ArrayList<CodeContextLine> objSourceLinesCode, boolean canonicalDefinition);    
    /**
     * Devuelve el Código Fuente de la Inicialización de un Modelo Asociado. 
     * @param objSourceLinesCode Colección que almacenará el Código Fuente Generado.
     * @param canonicalDefinition Determina el Tipo de Generación del Código Fuente en la Definiciones de Tipos de Datos. 
     */
    public void generateSourceCodeSyntaxCollectionAsociateModelInitialization(ArrayList<CodeContextLine> objSourceLinesCode, boolean canonicalDefinition);    
    /**
     * Devuelve el Código Fuente de la Función que Encapsula el Modelo Asociado.
     * @param objSourceLinesCode Colección que almacenará el Código Fuente Generado.
     * @param canonicalDefinition Determina el Tipo de Generación del Código Fuente en la Definiciones de Tipos de Datos. 
     */
    public void generateSourceCodeSyntaxFunctionEncapsuleAsociateModelDefinition(ArrayList<CodeContextLine> objSourceLinesCode, boolean canonicalDefinition);    
}
